#-*- encoding: utf-8 -*-
'''
Created on 2011-5-2

@author: Bob
'''
########################_#######################_#######################
IDI_MAX_TIME_ID         =           30                                    #极限定时器

#结束原因
GER_NORMAL              =         0x00                                #常规结束
GER_DISMISS             =          0x01                                #游戏解散
GER_USER_LEFT           =        0x02                                #用户离开
GER_KIND                =           0x03                                #求和

#索引定义
INDEX_SOCKET             =       0x0000                       #网络索引
INDEX_ANDROID            =        0x2000                        #机器索引
INVALID_WORD_INDEX       =         0xFFFF                        #无效索引

#####################################
#自动排座

MAX_ANDROID_PLAY_TABLE_COUNT    = 6                                   #机器人桌数
PLAY_TABLE_COUNT_THRESHOLD      = 10                                  #桌数阀值

#####################################
#调度时间

#时间范围
IDI_ATTEMPER_START          =      1                                    #调度起始
IDI_ATTEMPER_CONCLUDE       =     99                                    #调度结束

#时间标识
IDI_CONNECT_CENTER_SERVER    =    (IDI_ATTEMPER_START+1)                #连接服务器
IDI_UPDATE_SERVER_LIST       =     (IDI_ATTEMPER_START+2)                #更新列表
IDI_UPDATE_ONLINE_COUNT      =      (IDI_ATTEMPER_START+3)                #更新人数
IDI_SEND_SYSTEM_MESSAGE      =     (IDI_ATTEMPER_START+4)                #系统消息

#机器标识
IDI_LOAD_ANDROID_INFO         =   (IDI_ATTEMPER_START+5)                #用户信息
IDI_DISTRIBUTE_ANDROID        =    (IDI_ATTEMPER_START+6)                #分配用户
IDI_OPERATOR_ANDROID          =  (IDI_ATTEMPER_START+7)                #操作机器人

#时间定义
TIME_RECONNECT                 =   15000L                                #重连时间
TIME_UPDATE_LIST               = 30000L                                #更新时间
TIME_UPDATE_ONLINE             =   30000L                                #更新人数

#####################################
#机器时间

#时间范围
IDI_ANDROID_START              =  100                                    #机器起始
IDI_ANDROID_CONCLUDE           = 199                                    #机器结束

#时间标识
IDI_ANDROID_INOUT               = (IDI_ANDROID_START+1)                #进出时间
IDI_ANDROID_USER_PULSE          =  (IDI_ANDROID_START+2)                #脉冲时间

#机器时间
#IDI_ANDROID_USER_TIEM           = 1                                    #起始标识
IDI_ANDROID_ITEM_SINK            = 500                                    #起始标识

#辅助时间
TIME_LOAD_ANDROID_INFO           = 180L                                #加载用户
TIME_DISTRIBUTE_ANDROID          =  3L                                    #分配用户
TIME_OPERATOR_ANDROID            = 1L                                    #操作机器人

#用户时间
TIME_ANDROID_INOUT                = 10L                                    #登录时间
TIME_ANDROID_SERVICE              = 7200L                                #服务时间
TIME_ANDROID_USER_PULSE           = 1L                                    #用户脉冲

#####################################
#桌子时间

#时间范围
IDI_TABLE_FRAME_START             = 200                                    #桌子起始
IDI_TABLE_FRAME_CONCLUDE          = 5000                                #桌子结束

#时间常量
RANGE_TABLE_TIME                  = 50                                    #标识范围

########################_#######################_#######################
########################_#######################_#######################
#枚举定义

#开始模式
class StartMode:
    StartMode_FullReady = 0                     #满人开始
    StartMode_AllReady  = 1                     #所有准备
    StartMode_Symmetry  = 2                     #对称开始
    StartMode_TimeControl= 3                    #时间控制


#分数类型
class ScoreKind:
    ScoreKind_Win       = 1                    #胜
    ScoreKind_Lost      = 2                    #输
    ScoreKind_Draw      = 3                    #和
    ScoreKind_Flee      = 4                    #逃
    ScoreKind_Service   = 5                    #服务
    ScoreKind_Present   = 6                    #赠送


########################_#######################_#######################
#结构定义

#数据库信息
class DataBaseInfo:
    DataBasePort        = 0
    DataBaseAddr        = ''
    User                = ''
    Pass                = ''
    DataBaseName        = ''            

#积分信息
class ScoreInfo:
    RankPoint           = 0                     #头衔点值
    UBiMoney            = 0                     #U 币数量
    UBiRevenue          = 0                        #U 币税收
    ScoreKind           = 0                        #分数类型

#用户规则
class UserRule:
    Password            = 0                       #设置密码
    LimitWin            = 0                     #限制胜率
    LimitFlee            = 0                     #限制逃跑
    LimitScore            = 0                     #限制分数
    CheckSameIP            = 0                     #效验地址
    WinRate                = 0                     #胜率限制
    FleeRate            = 0                     #限制逃跑
    MaxScore            = 0                     #最高分数 
    LessScore            = 0                     #最低分数
    Password            = ''                    #桌子密码


#用户信息结构
class ServerUserData:
    #属性信息
    FaceID                = 0                     #头像索引
    UserID                = 0                     #用户 I D
    GameID                = 0                     #游戏 I D
    GroupID                = 0                     #社团索引
    UserRight            = 0                     #用户等级
    MasterRight            = 0                     #管理权限
    Accounts            = ''                     #用户帐号
    GroupName            = ''                     #社团名字
    UnderWrite            = ''                     #个性签名
    UserTypeID            = 0                        #用户类型
    UserType            = ''                       #用户类型
    HomeCity            = ''                    #用户家乡

    #用户属性
    Gender            = 0                             #用户性别
    MemberOrder            = 0                         #会员等级
    MasterOrder            = 0                         #管理等级
    SecrectID            = 0                         #秘书ID
    #状态信息
    TableID            = 0                             #桌子号码
    ChairID            = 0                             #椅子位置
    UserStatus            = 0                         #用户状态

    #分数信息
    StorageScore            = 0                         #存储积分
    UserScoreInfo            = None                         #用户分数,UserScore
    
    #扩展信息
    ClientInfo            = None                             #环境信息,UserScore


#桌子参数结构
class TableFrameParameter:
    pIGameServiceFrame            = 0                 #服务框架
    pIGameServiceManager            = 0                 #服务管理
    pGameServiceAttrib            = 0                 #桌子属性
    pGameServiceOption            = 0                 #配置参数
    pDataBaseEvent            = 0                    #数据库通知


#服务参数结构
class GameServiceParameter:
    Module            = ''                         #模块名字
    CenterAddr            = 0                         #中心地址
    GameUserDBInfo            = 0                         #数据配置
    GameScoreDBInfo            = 0                     #数据配置
    GameServiceOption            = 0                     #服务配置

#游戏服务属性
class GameServieAttribute:
    kind_id             = 0                     #名称号码
    chair_count         = 0                     #椅子数目
    join_in_game        = 0                     #游戏加入
    database_name       = None                  #数据库名
    description         = None                  #模块描述
    kind_name           = None                  #类型名字
    server_module_name  = None                  #模块名称
    client_module_name  = None                  #模块名称

#游戏服务配置
class GameServiceOption:
    #房间属性
    kind_id             = 0                     #类型标示
    server_id           = 0                     #房间号码
    station_id          = 0                     #站点号码
    table_count         = 0                     #桌子数目
    server_port         = 0                     #房间端口
    server_type         = 0                     #房间类型
    max_connect         = 0                     #最大连接
    server_addr         = ''                    #房间地址
    video_server        = ''                    #视频地址
    game_room_name      = ''                    #房间名称
    match_room_name     = ''                    #比赛名称
    
    #积分限制
    tax                 = 0                     #游戏税收
    cell_score          = 0                     #单位积分
    less_score          = 0                     #最低积分
    restrict_score      = 0                     #限制积分                          
    
    #比赛配置
    match_draw          = 0                     #比赛局数
    control_start       = 0                     #控制开始
    money_type          = 0                     #货币类别
    money_type_desc     = ''                    #类别描述
    const_money         = 0                     #固定比赛币
    begin_time          = 0                     #开始时间
    end_time            = 0                     #结束时间
    limit_player        = 0                     #限制人数
    match_cost          = 0                     #比赛费用
    
    #扩展配置
    hide_user_info      = 0                     #隐藏信息
    distribute_mode     = 0                     #分配模式